﻿using System.Collections;
using System.Windows.Forms;
using System.Collections.Generic;
using System.Drawing;

namespace CalcSharp.Core.Plugin
{
    /// <summary>
    /// Window plugin interface
    /// </summary>
    public interface IWindowPlugin
    {
        /// <summary>
        /// Entry Point of execution
        /// </summary>
        /// <param name="plugparams">Optional arguments</param>
        /// <returns>A form, which will be displayed</returns>
        Form RunWindow(ArrayList plugparams);
        /// <summary>
        /// Icon, that will can be displayed in a dropdown menu
        /// </summary>
        Bitmap PluginIcon { get; }
        /// <summary>
        /// The Plugin name, wich is the Execution alias of the plugin
        /// </summary>
        string Name { get; }
        /// <summary>
        /// Autocomplete commands list
        /// </summary>
        Dictionary<string, string> autocomplete { get; }
        /// <summary>
        /// A Small help of the plugin.
        /// </summary>
        string Help { get; }
        /// <summary>
        /// Host aplication can be accesed using this property
        /// </summary>
        IPluginHost Host { get; set; }
    }
}
